﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Sistema_Totem.Presentacion.Contrato.Requerimientos;
using Sistema_Totem.Presentacion.Presentador.Requerimientos;
using Sistema_Totem.Clases;
using System.Web.SessionState;

namespace Sistema_Totem.Vista.Requerimientos
{
    public partial class ModificarRequerimiento : System.Web.UI.Page, IContratoModificarRequerimiento
    {
        #region Atributos

        /// <summary>
        /// Instancia del Presentador Modificar Requerimiento.
        /// </summary>
        private PresentadorModificarRequerimiento _presentador;

        #endregion Atributos

        /// <summary>
        /// Metodo de inicio "Page_Load".
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Sesion["usuario"] == null || Sesion["proyecto"] == null || (Sesion["usuario"] as Usuario).TipoUsuario == "Administrador")
                Response.Redirect("../Login/login.aspx");
            else
            {
                _presentador = new PresentadorModificarRequerimiento(this);
                Session["listaRequerimiento"] = _presentador.BuscarDocumentosRequerimiento();
                _presentador.OcultarColumna();
            }
        } 

        #region Implementación IContratoModificarRequerimiento

        /// <summary>
        /// Implementación del método GVBuscarRequerimiento
        /// </summary>
        public GridView GVBuscarRequerimiento
        {
            get { return GridViewModificarRequerimiento; }
        }

        /// <summary>
        /// Implementación del método MensajeError.
        /// </summary>
        public Label MensajeError
        {
            get { return mensaje; }
        }

        /// <summary>
        /// Implementación del método BuscarRequqrimiento.
        /// </summary>
        public TextBox BuscarRequerimientos
        {
            get { return TextBoxBuscar; }
        }

        /// <summary>
        /// Implentacion del metodo Sesion
        /// </summary>
        public HttpSessionState Sesion
        {
            get { return Session; }
        }

        #endregion Implementación IContratoModificarRequerimiento

        #region Eventos

        /// <summary>
        /// Evento que seleciona la fila del gridview.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewBuscarRequerimiento_SelectIndexChanged(object sender, EventArgs e)
        {
            // seleccionamos la fila que selecciono
               GridViewRow row = GridViewModificarRequerimiento.SelectedRow;
            // guardamos el id de la celda seleccionada
              int idSelecionado = Convert.ToInt32(row.Cells[0].Text);
            // instanciamos un objeto del tipo Presentador
              _presentador = new PresentadorModificarRequerimiento(this);
            // llamamos al metodo para buscar el Requerimiento seleccionado en la lista de Requerimientos
            Session["ObjetoListar"] = _presentador.seleccionarRequerimiento(idSelecionado, Session["listaRequerimiento"]);
            // redireccionamos a la siguente interfaz grafica
            Response.Redirect("../Requerimientos/ModificarRequerimiento2.aspx");
        }

        /// <summary>
        /// Metodo que realiza la accion del boton del motor de busqueda.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonBuscar(object sender, EventArgs e)
        {
            string nombreRequerimiento = BuscarRequerimientos.Text;
            _presentador = new PresentadorModificarRequerimiento(this);
            _presentador.buscarRequerimiento(Session["listaRequerimiento"], nombreRequerimiento);
        }

        #endregion Eventos
    }
}